package com.deyuanyun.pic.app.service;

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.deyuanyun.pic.common.dto.Result;
import com.deyuanyun.pic.pig.domain.PigResults;
import com.deyuanyun.pic.pig.domain.PigTaskPoint;


public interface PigService {
	/**
	 * 登陆接口
	 */
   List<HashMap<String,Object>> login(String Account) throws Exception;
   
   //外部人员借用
  // HashMap<String,Object> logins(String Account) throws Exception;
   /**
    * 判断是否为有效用户
    * @param UserID
    * @return
    */
   HashMap<String,Object> findUserId(String UserID);
   
   /**
    * 异步写入日志
    * @param Id
    * @param userId
    * @param state
    * @param accessType
    */
   
   void insertLog(String Id,String userId,Integer state,Integer accessType);
   
	/**
	 * @Description ：选择检测任务接口
	 */
     HashMap<String, Object> findTask() throws Exception;
	
	/**
	 * 获取任务信息 
	 * @param taskId
	 * @return
	 * @throws Exception
	 */
     HashMap<String, Object>  getTaskInfo(String taskId) throws Exception;
     
	/**
	 * 搜索检测任务接口
	 * @param pipeName
	 * @return
	 * @throws Exception
	 */
	Result findTaskByName(String pipeName)  throws Exception;
	
	/**
	 * 查询发球点相关数据（对用于判断用户是否是先提交收球点在提交发球点有帮助，比如查询发球时间是否为空）
	 * @param taskId
	 * @return
	 * @throws Exception
	 */
	
//	HashMap<String,Object> findSend(String taskId) throws Exception;
	
	/**
	 * @Description:选择跟踪点任务接口
	 */
	HashMap<String, Object>  findMarker(String taskId) throws Exception;
	
	Result getTaskTypes() throws Exception;
	
	/**
	 * 获取配置信息
	 * @return
	 * @throws Exception
	 */
	HashMap<String, Object> getConfigs() throws Exception;
   /**
    * 提交发球点信息
    */
	void insertSendInfo(PigResults result) throws Exception;
	
   /**
    * 提交收球点信息
    */
	void updateBackInfo(PigResults result) throws Exception;
	
	/**
	 * 发球、收球、通过 passBall 
	 */
	void passBall(String taskId,String ID,Date passTime,BigDecimal mile,int type) throws Exception;
	
	/**
	 * 提交标记点信息
	 */
	void updateMarker(PigTaskPoint point) throws Exception;
	
	/**
	 * 人到达跟踪点
	 */
	void arriveMark(PigTaskPoint point) throws Exception;
}
